<?php
/**
 * @copyright Copyright (c) 2021 勾股工作室
 * @license https://opensource.org/licenses/Apache-2.0
 * @link https://www.gougucms.com
 */
namespace app\admin\model;
use think\facade\Db;
use think\model;
class Withdraw extends Model
{
    /**
     * 获取分页列表
     * @param $where
     * @param $param
     */
    public function getWithdrawList($where, $param)
    {
        $rows = empty($param['limit']) ? get_config('app . page_size') : $param['limit'];
        $order = empty($param['order']) ? 'id desc' : $param['order'];
        if (!empty($param['keywords'])) {
            $where[] = ['nickname','like',"%{$param['keywords']}%"];
        }
        $list = self::where($where)->order($order)->paginate($rows, false, ['query' => $param])->toArray();
        if (!empty($list['data'])) {
            foreach ($list['data'] as &$val) {
                if ($val['tx_type'] == 1) {
                    $user = Db::name('user_one')->where('id',$val['uid'])->find();
                } elseif ($val['tx_type'] == 2) {
                    $user = Db::name('user_two')->where('id',$val['uid'])->find();
                } else {
                    $user = Db::name('user_three')->where('id',$val['uid'])->find();
                }
                $val['phone'] = $user['mobile'];
                $val['nickname'] = $user['user_name'];
            }
        }
        return $list;
    }

    /**
     * 添加数据
     * @param $param
     */
    public function addWithdraw($param)
    {
        $insertId = 0;
        try {
            $param['create_time'] = time();
            $insertId = self::strict(false)->field(true)->insertGetId($param);
            add_log('add', $insertId, $param);
        } catch(\Exception $e) {
            return to_assign(1, '操作失败，原因：'.$e->getMessage());
        }
        return to_assign(0,'操作成功',['aid'=>$insertId]);
    }

    /**
     * 编辑信息
     * @param $param
     */
    public function editWithdraw($param)
    {
        try {
            $param['update_time'] = time();
            self::where('id', $param['id'])->strict(false)->field(true)->update($param);
            add_log('edit', $param['id'], $param);
        } catch(\Exception $e) {
            return to_assign(1, '操作失败，原因：'.$e->getMessage());
        }
        return to_assign();
    }


    /**
     * 根据id获取信息
     * @param $id
     */
    public function getWithdrawById($id)
    {
        $info = self::where('id', $id)->find();
        return $info;
    }

    /**
     * 删除信息
     * @param $id
     * @return array
     */
    public function delWithdrawById($id,$type=0)
    {
        if($type==0){
            //逻辑删除
            try {
                $param['delete_time'] = time();
                self::where('id', $id)->update(['delete_time'=>time()]);
                add_log('delete', $id);
            } catch(\Exception $e) {
                return to_assign(1, '操作失败，原因：'.$e->getMessage());
            }
        }
        else{
            //物理删除
            try {
                self::where('id', $id)->delete();
                add_log('delete', $id);
            } catch(\Exception $e) {
                return to_assign(1, '操作失败，原因：'.$e->getMessage());
            }
        }
        return to_assign();
    }
}

